package POJO;

import java.util.HashSet;
import java.util.Set;
/**
 * 
 * Klasa odpowiadajaca za Konto
 * Po tej klasie dziedziczy Kredyt i Lokata
 */

public class Konto
{
	private String nrRachunku;
	private double stanKonta;
	private Osoba wlasciciel;
	private Set<HistoriaKonta> historiaKonta = new HashSet<HistoriaKonta>();


	public Konto()
	{
		
	}
	

	
	public Konto(String nrRachunku, double stanKonta, Osoba wlasciciel)
	{
		this.nrRachunku = nrRachunku;
		this.stanKonta = stanKonta;
		this.wlasciciel = wlasciciel;
	}
	
	
	public Set<HistoriaKonta> getHistoriaKonta() {
		return historiaKonta;
	}
	public void setHistoriaKonta(Set<HistoriaKonta> historiaKonta) {
		this.historiaKonta = historiaKonta;
	}
	public double getStanKonta() {
		return stanKonta;
	}
	public void setStanKonta(double saldo) {
		this.stanKonta = saldo;
	}
	public String getNrRachunku() {
		return nrRachunku;
	}
	public void setNrRachunku(String nrRachunku) {
		this.nrRachunku = nrRachunku;
	}


	public Osoba getWlasciciel() {
		return wlasciciel;
	}
	public void setWlasciciel(Osoba wlasciciel) {
		this.wlasciciel = wlasciciel;
	}
	
	public void dodanieRekorduHistori(HistoriaKonta hk)
	{
		this.historiaKonta.add(hk);
	}
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((nrRachunku == null) ? 0 : nrRachunku.hashCode());
		long temp;
		temp = Double.doubleToLongBits(stanKonta);
		result = prime * result + (int) (temp ^ (temp >>> 32));
		result = prime * result
				+ ((wlasciciel == null) ? 0 : wlasciciel.hashCode());
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Konto other = (Konto) obj;
		if (nrRachunku == null) {
			if (other.nrRachunku != null)
				return false;
		} else if (!nrRachunku.equals(other.nrRachunku))
			return false;
		if (Double.doubleToLongBits(stanKonta) != Double
				.doubleToLongBits(other.stanKonta))
			return false;
		if (wlasciciel == null) {
			if (other.wlasciciel != null)
				return false;
		} else if (!wlasciciel.equals(other.wlasciciel))
			return false;
		return true;
	}
}